package com.wfy.common.entity;

import com.wfy.common.config.Global;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: wangxindong
 * Date: 2017/9/27
 * Time: 12:48
 */
public final class ResultGenerate {

    // ================================================================
    // Constants
    // ================================================================


    // ================================================================
    // Fields
    // ================================================================


    // ================================================================
    // Constructors
    // ================================================================

    // ================================================================
    // Methods from/for super Interfaces or SuperClass
    // ================================================================

    // ================================================================
    // Public or Protected Methods
    // ================================================================

    public static Result getResult(String msg, int code, int count, Object data) {
        Result result = new Result();
        result.setCode(code);
        result.setMsg(msg);
        result.setData(data);
        result.setCount(count);
        return result;
    }

    public static Result getResult(String msg, int code, Object data) {
        Result result = new Result();
        result.setCode(code);
        result.setMsg(msg);
        result.setData(data);
        if (data instanceof List) {
            List datas = (List) data;
            result.setCount(datas.size());
        }
        return result;
    }

    public static Result getResult(String msg, int code) {
        return getResult(msg, code, null);
    }

    public static Result getSuccessResult(String msg, int code, Object data) {
        return getResult(msg, code, data);
    }

    public static Result getSuccessResult(Object data) {
        return getSuccessResult(Global.DEFAULT_SUCCESS_MSG, Global.DEFAULT_SUCCESS_CODE, data);
    }

    public static Result getSuccessResult() {
        return getSuccessResult(Global.DEFAULT_SUCCESS_MSG, Global.DEFAULT_SUCCESS_CODE, null);
    }

    public static Result getFailResult(String msg, int code, Object data) {
        return getResult(msg, code, 0, data);
    }

    public static Result getFailResult() {
        return getResult(Global.DEFAULT_FAIL_MSG, Global.DEFAULT_FAIL_CODE, 0, null);
    }

    public static Result getFailResult(final String msg) {
        return getResult(msg, Global.DEFAULT_FAIL_CODE, 0, null);
    }

    public static Result getNotLoginResult() {
        return getResult(Global.INVALID_USER_KEY_MSG, Global.INVALID_USER_KEY_CODE,
                0, null);
    }

    public static Result getParamFailResult(String msg) {
        return getResult(msg, Global.INVALID_PARAMS_CODE, 0, null);
    }

    // ================================================================
    // Getter & Setter
    // ================================================================

    // ================================================================
    // Private Methods
    // ================================================================


    // ================================================================
    // Inner or Anonymous Class
    // ================================================================

    // ================================================================
    // Test Methods
    // ================================================================

}
